home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
001
/
pibt40s1.arc
/
HANDLEHT.MOD
< prev
next >
Wrap
Text File
|
1987-05-02
|
2KB
|
69 lines
(*----------------------------------------------------------------------*)
(* Handle_Tab --- Process horizontal tab sequence *)
(*----------------------------------------------------------------------*)
PROCEDURE Handle_Tab( Tabs : Tab_Stop_Vector; NTabs : INTEGER );
(*----------------------------------------------------------------------*)
(* *)
(* Procedure: Handle_Tab *)
(* *)
(* Purpose: Handle horizontal tab character for VT52, VT100. *)
(* *)
(* Calling Sequence: *)
(* *)
(* Handle_Tab( Tabs : Tab_Stop_Vector; NTabs : INTEGER ); *)
(* *)
(*----------------------------------------------------------------------*)
VAR
I : INTEGER;
J : INTEGER;
Curcol : INTEGER;
ITab : INTEGER;
TabCol : INTEGER;
BEGIN (* Handle_Tab *)
Curcol := WhereX;
IF ( Curcol > Wrap_Screen_Col ) THEN
Curcol := Wrap_Screen_Col;
IF ( NTabs > 0 ) THEN
BEGIN
Itab := 1;
WHILE ( ( ITab <= NTabs ) AND
( Curcol >= Tabs[Itab] ) ) DO
ITab := SUCC( ITab );
IF ( ITab <= NTabs ) THEN
TabCol := Tabs[ITab]
ELSE
TabCol := Wrap_Screen_Col;
END
ELSE
TabCol := Curcol;
MoveToXY( TabCol , WhereY );
IF Review_On THEN
FOR I := CurCol TO ( TabCol - 1 ) DO
BEGIN
J := ORD( Review_Line[0] ) + 1;
Review_Line[J] := ' ';
Review_Line[0] := CHR( J );
END;
IF ( Capture_On AND Exact_Capture ) THEN
Capture_Char( CHR( HT ) );
IF Printer_On THEN
FOR Itab := CurCol TO ( TabCol - 1 ) DO
WRITE( Lst , ' ' );
END (* Handle_Tab *);